class EmpEngine(object):
    '''
    classdocs
    '''


    def __init__(self, networkGen, algConfig, statConfig, outputConfig):
        '''
        Constructor
        '''
        self.NetworkGen = networkGen
        self.AlgConfig = algConfig
        self.StatConfig = statConfig
        self.OutputConfig = outputConfig
        
    
        
    def Run(self):
        network = self.NetworkGen.Generate()
        
        self.AlgConfig.Apply(network)
        self.StatConfig.Apply(network)
        self.OutputConfig.Apply(network)
        
        return network